package com.test.springCloud.utils;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;

import lombok.extern.slf4j.Slf4j;

/**
 * 
 * @date 2021年6月5日 下午1:49:06
 * @author XiaoHuang
 *
 */
@Slf4j
public class StoreFile {

	/**
	 * 
	 * @param file
	 * @param storeFilepath example: D:\\storeYihuitongPersonImg\\
	 */
	public String storeFile(MultipartFile file, String storeFilepath) {
		String fileName = file.getOriginalFilename(); // 文件名
		String suffixName = "";
		if(!fileName.contains("-"))
		suffixName = fileName.substring(fileName.lastIndexOf("."));
		else
			suffixName = ".jpg";
		String filePath = storeFilepath;// 这个path就是你要存在服务器上的
		fileName = UUID.randomUUID() + suffixName; // 新文件名
		File dest = new File(filePath + "\\" +fileName);

		System.out.println("log:"+dest.getParentFile());
		//不存在文件夹就创建
		if (!dest.getParentFile().exists()) {
			log.info("文件夹不存在已创建");
			dest.getParentFile().mkdirs();
		}
		//如出现异常则返回空
		try {
			file.transferTo(dest);
		} catch (IllegalStateException | IOException e) {
			e.printStackTrace();
			return null;
		}
		log.info("保存文件完成：" + dest);
		return dest.toString();

	}
	
	/**
	 * 
	 * @param file
	 * @param storeFilepath example: D:\\storeYihuitongPersonImg\\
	 */
	public String storeFileSuth2(File file, String storeFilepath) {
		String fileName = file.getName(); // 文件名
		String suffixName = fileName.substring(fileName.lastIndexOf("."));
		String filePath = storeFilepath;// 这个path就是你要存在服务器上的
		fileName = UUID.randomUUID() + suffixName; // 新文件名
		File dest = new File(filePath + "\\" +fileName);

		System.out.println("log:"+dest.getParentFile());
		//不存在文件夹就创建
		if (!dest.getParentFile().exists()) {
			log.info("文件夹不存在已创建");
			dest.getParentFile().mkdirs();
		}
		//如出现异常则返回空
		try {
			file.createNewFile();
		} catch (IllegalStateException | IOException e) {
			e.printStackTrace();
			return null;
		}
		log.info("保存文件完成：" + dest);
		return dest.toString();

	}
}
